<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <h1>遍历DOM树</h1>
  <p sytle="color: green;">Tip: 可以在遍历的回调函数中任意定制需求</p>
  <div>
    <ul>
      <li>123</li>
      <li>456</li>
      <li>789</li>
    </ul>
    <div>
      <div>
        <span>hahaha</span>
      </div>
    </div>
  </div>
  <div id="demo-node">
    <ul>
      <li>123</li>
    </ul>
    <p>hello</p>
    <h2>world</h2>
    <div>
      <p>dsa</p>
    </div>
  </div>
  <script>
    // collection 集合
    // 需求： 遍历html中的所有后代元素 打印出来
    // 思路： 找到html根元素，去寻找html根元素的子元素，
    // 判断一下html根元素的子元素有没有子元素 如果有 就继续找
    // 获取html元素
    var html = document.documentElement;
    console.log(html);
    function forDom(html) {
      // 获取传入元素的子元素，递给child
      var children = html.children;
      child(children);
    }
    function child(children) {
      for(var i = 0; i < children.length; i++) {
        var child = children[i];
        console.log("节点名称:" + child.nodeName);
        // 判断传入的元素是否存在，与有一个false立即返回
        // 所以 如果child是真值那么forDom方法就会检查;
        child && forDom(child);
      }
    }
    forDom(html);
  </script>
</body>
</html>